The present invention relates to intermittently-connected devices. More particularly, the present invention relates to detecting data omissions in intermittently-connected devices.
Mobile applications often execute while disconnected from the server. The mobile device is therefore typically stocked in advance of disconnection with the data needed for correct application execution. This is termed the “replication” phase of the application lifecycle.
In general, developers of mobile applications must determine the data set required by a given application. If this determination is done incorrectly, the application will query its database as part of its business logic and receive incorrect or incomplete answers. Copying the entire database from the server to the client is often unrealistic because the amount of storage on many devices often constrains the amount of storage that is available to a given application.
Determining the data set required by a given application in advance of the application's execution is a difficult problem. For example, it is typically impossible to predict the input that will be supplied to the application, and these inputs often determine what data are required by the application. Furthermore, the data set depends on the application's business logic which may be difficult to fully understand, if only because some of the logic (e.g., enterprise workflow) may not be formally represented in the application itself. It is therefore assumed that, in practice, the mobile application may not have the correct data set stored on the device. Current approaches use ad-hoc logic to specify replication query, and fail to detect problems that relate to application-specific and workflow semantics